package com.kusej.dbdocexport.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author yangkx
 * @Description
 * @date 2021/9/10 17:36
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelTableHeader {
    /**
     * 标题所在行
     * @return
     */
    int headRowNum() default 0;

    /**
     * 标题所在列
     * @return
     */
    int headColumnNum() default 0;

    /**
     * 标题合并单元格的最后一行 仅在导出时使用 合并单元格
     * @return
     */
    int headRowLastNum() default 0;
    /**
     * 标题合并单元格的最后一列 仅在导出时使用 合并单元格
     * @return
     */
    int headColumnLastNum() default 0;

    /**
     * 表头名称 导入时校验使用 导出时渲染标题使用(为空不会渲染标题)
     * @return
     */
    String headerName() default "";

    /**
     * 是否需要校验大标题 仅在导入时使用
     * @return
     */
    boolean needCheckHead() default true;

    /**
     * 是否需要中文列 仅在导出时使用
     * @return
     */
    boolean needCommentRow() default true;
    /**
     * 全局的是否需要宽度 如果这里为false
     * 那么每个字段的{@link ExcelTable#needWidth()}都不会生效  仅在导出时使用
     * @return
     */
    boolean needColumnWidth() default true;
    /**
     * 字段中文含义所在行
     * @return
     */
    int commentRowNum() default 1;

    /**
     * 字段中文含义所在起始列
     * @return
     */
    int commentStartColumnNum() default 0;

    /**
     * 数据起始行
     * @return
     */
    int dataStartRowNum() default 2;
    /**
     * 数据起始列
     * @return
     */
    int dataStartColumnNum() default 0;
}
